import axios from "axios"
// import { config } from "vue/types/umd"

// 可以编写多个请求端口
const instance = axios.create({
    baseURL:"http://kumanxuan1.f3322.net:8001",
    timeout:5000
})

// 请求拦截器
instance.interceptors.request.use(config=>{
    // 什么时候执行这里的代码？？发送请求之前执行这里的代码
    // console.log("config为：",config)  //是一个axios帮我们封装好的关于本次请求详情的一个对象

    // ！！！在这个函数中，可以去做一些请求发出去之前的准备工作，例如把token添加到请求头
    let token=localStorage.getItem("token");
    if(token){
        // 把token设置到请求头中
        config.headers["X-Nideshop-Token"]=token
    }
    // 需要返回config才能成功发出请求
    // console.log(111);
    
    return config
},err=>{
    return Promise.reject(err)
})


// 响应拦截器
instance.interceptors.response.use(res=>{
    // 统一管理错误提示
    // 判断res.errno 是不是为0，不是为0则返回错误信息
    let data = res.data
    if(data.errno!==0){
        console.log("响应拦截器中：",data.errmsg);
    }
    // console.log(222);
    return data
},err=>{
    return Promise.reject(err)
})

// 执行顺序是：请求拦截器=》响应拦截器=》组件上的请求
export default instance